package util

import (
	"errors"
	"fmt"
	"os"
	"strconv"
)

//func GetBoolOrString(v interface{}) (bool, error) {
//	switch v := v.(type) {
//	case bool:
//		return bool(v)
//	case string:
//		return v, nil
//	default:
//		return "", fmt.Errorf("unknow type %T", v)
//	}
//}

func GetIntOrString(v interface{}) (string, error) {
	switch v := v.(type) {
	case float64:
		return strconv.Itoa(int(v)), nil
	case string:
		return v, nil
	default:
		return "", fmt.Errorf("unknow type %T", v)
	}
}

func FileExists(name string) (bool, error) {
	_, err := os.Stat(name)
	if err == nil {
		return true, nil
	}
	if errors.Is(err, os.ErrNotExist) {
		return false, nil
	}
	return false, err
}
